part of "../file_system.dart";

extension FileExtension on File {
  /// 初始化文件
  /// 如果文件不存在，则会创建文件
  /// 如果有初始内容，则会填入初始内容
  void initIf([dynamic initialValue]) {
    // 只有在文件不存在时，才执行这些操作
    // 如果文件存在，则忽略
    if (!existsSync()) {
      createSync(recursive: true);

      if (initialValue != null) {
        write(initialValue);
      }
    }
  }

  void write(dynamic data) {
    // 写入之前，确保文件存在
    initIf();
    // 写入字符串化的数据
    writeAsStringSync(stringify(data));
  }

  /// 如果存在的话，则删除
  /// 如果不存在的话，不执行任何操作
  void deleteIf() {
    if (existsSync()) deleteSync();
  }
}
